package com.tzl.controller;

import com.tzl.dto.StuAndCjDto;
import com.tzl.entity.Students;
import com.tzl.service.IStudentsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller;
import utils.PageResult;
import utils.R;

import java.util.List;

@RestController
@RequestMapping("/stu")
public class StudentsController {
    @Autowired
    private IStudentsService studentsService;
    // 获取所有学生信息
    @GetMapping("/getAll.do")
    public PageResult<Students> getAll(){
        return studentsService.getAll();
    }
    // 根据页码和页面大小分页查询学生信息
    @GetMapping("/selectByPage.do")
    public PageResult<StuAndCjDto> selectByPage(@RequestParam("currentPage") Integer page,
                                                @RequestParam("pageSize") Integer pageSize){
        return studentsService.selectByPage(page,pageSize);
    }
    // 根据条件分页查询学生信息
    @PostMapping("/selectByCondition.do")
    public PageResult<StuAndCjDto> selectByCondition(@RequestParam("currentPage") Integer page,
                                                     @RequestParam("pageSize") Integer pageSize,
                                                     @RequestBody StuAndCjDto stuAndCjDto){
        System.out.println(page);
        System.out.println(pageSize);
        System.out.println(stuAndCjDto);
        return studentsService.selectByCondition(page,pageSize,stuAndCjDto);
    }
    // 添加学生及成绩信息
    @PostMapping("/addStuAndCj.do")
    public R addStuAndCj(@RequestBody StuAndCjDto stuAndCjDto){
        return studentsService.addStuAndCj(stuAndCjDto)? R.ok().message("添加成功") : R.error().message("添加失败");
    }
    // 根据id删除学生及成绩信息
    @DeleteMapping("/deleteStuAndCj.do")
    public R deleteStuAndCj(@RequestParam("id") Long id){
        System.out.println("******************"+id);
        System.out.println((id).getClass());
        return studentsService.deleteStuAndCj(id)==1? R.ok().message("删除成功") : R.error().message("删除失败");
    }
    // 批量删除学生及成绩信息
    @DeleteMapping("/deleteChecked.do")
    public R deleteChecked(@RequestBody List<String> ids){
        return studentsService.deleteChecked(ids)==ids.size()? R.ok().message("删除成功") : R.error().message("删除失败");

    }
    // 修改学生及成绩信息
    @PutMapping("/updateStuAndCj.do")
    public R updateStuAndCj(@RequestParam("id") String id,
                            @RequestBody StuAndCjDto stuAndCjDto){
        System.out.println(id);
        System.out.println(stuAndCjDto);
        return studentsService.updateStuAndCj(id,stuAndCjDto)? R.ok().message("修改成功") : R.error().message("修改失败");
    }
}
